// let s = "()[]{}"
// var isValid = function (s) {
//    const obj = {
//       '(': ')',
//       '[': ']',
//       '{': '}'
//    }
//    var a = []
//    for (let i = 0; i < s.length; i++) {
//       while (obj[s[i]]) {
//          a.push
//       }
//       if (obj[a.pop] != s[i]) {
//          return false;
//       }
//    }
//    return true;

// };
// console.log(isValid());



let s = "({}{}{)([[][][[[]";
var isValid = function (s) {
   const obj = {
      '(': ')',
      '[': ']',
      '{': '}'
   };
   // 声明栈
   let a = [];
   for (let i = 0; i < s.length; i++) {
      if (obj[s[i]]) {
         // 遇到左括号，压入栈
         a.push(s[i]);
      } else {
         // 遇到右括号
         if (a.length === 0 || obj[a.pop()] !== s[i]) {
            return false;
         }
      }
   }
   // 循环结束后检查栈是否为空
   return a.length === 0;
};
console.log(isValid(s));